import random
import string
import json
import time


# 生成若干位数随机大小写加数字字符串
def generate_random_string(length=32):
    characters = string.ascii_uppercase + string.digits
    random_string = ''.join(random.choice(characters) for _ in range(length))
    return random_string


# 遍历yaml，获取某字段
def extract_names_from_yaml(yaml_file_path, names_set):
    # 打开并读取 YAML 文件
    with open(yaml_file_path, 'r') as file:
        data = yaml.safe_load(file)

        # 定义一个递归函数来遍历数据
        def extract_names(obj):
            if isinstance(obj, dict):  # 如果条目是字典类型
                for key, value in obj.items():
                    if key == 'name':  # 检查键是否为 'name'
                        names_set.add(value)  # 添加到集合中
                    else:
                        extract_names(value)  # 递归搜索
            elif isinstance(obj, list):  # 如果条目是列表类型
                for item in obj:
                    extract_names(item)  # 对列表中每个条目递归搜索

        # 开始遍历 YAML 数据
        extract_names(data)